10.0 Массивы

В JavaScript массивы — это специальные объекты, которые позволяют хранить несколько значений в одной переменной. Это удобный способ работы с наборами данных, поскольку элементы массива могут быть любого типа (числа, строки, объекты, другие массивы и т.д.). Рассмотрим основные аспекты работы с массивами в JavaScript.

1. Создание массива

Для создания массива можно использовать квадратные скобки [] или конструктор Array.

// Способы создания массива
let arr1 = [];                   // Пустой массив
let arr2 = [1, 2, 3, 4, 5];      // Массив с числами
let arr3 = new Array(5);          // Массив с 5 пустыми ячейками
let arr4 = new Array('a', 'b');   // Массив с элементами 'a' и 'b'

2. Доступ к элементам массива

Каждый элемент массива имеет индекс (начинается с 0). Для доступа к элементу указывают имя массива и индекс в квадратных скобках.

let fruits = ["apple", "banana", "cherry"];
console.log(fruits[0]);  // "apple"
console.log(fruits[1]);  // "banana"
console.log(fruits[2]);  // "cherry"

3. Добавление и удаление элементов

Для добавления и удаления элементов существуют методы:

  • push() — добавляет элемент в конец массива.
  • pop() — удаляет последний элемент из массива.
  • unshift() — добавляет элемент в начало массива.
  • shift() — удаляет первый элемент массива.
let fruits = ["apple", "banana"];
fruits.push("cherry");     // ["apple", "banana", "cherry"]
fruits.pop();              // ["apple", "banana"]
fruits.unshift("mango");   // ["mango", "apple", "banana"]
fruits.shift();            // ["apple", "banana"]

4. Перебор элементов массива

Для перебора элементов массива можно использовать циклы, такие как for, for...of, или методы массива, такие как forEach().

let fruits = ["apple", "banana", "cherry"];

// Цикл for
for (let i = 0; i < fruits.length; i++) {
    console.log(fruits[i]);
}

// Цикл for...of
for (let fruit of fruits) {
    console.log(fruit);
}

// Метод forEach
fruits.forEach(fruit => console.log(fruit));

5. Другие полезные методы

JavaScript предоставляет много встроенных методов для работы с массивами:

  • map() — создает новый массив с результатами вызова функции для каждого элемента.
  • filter() — создает новый массив только с элементами, которые соответствуют условию.
  • find() — находит первый элемент, удовлетворяющий условию.
  • reduce() — использует аккумулятор для свертки массива в одно значение.

Пример:

let numbers = [1, 2, 3, 4, 5];
let doubled = numbers.map(num => num * 2);          // [2, 4, 6, 8, 10]
let evenNumbers = numbers.filter(num => num % 2 === 0); // [2, 4]
let firstEven = numbers.find(num => num % 2 === 0); // 2
let sum = numbers.reduce((acc, num) => acc + num, 0); // 15

6. Длина массива

Свойство length возвращает количество элементов в массиве.

let fruits = ["apple", "banana", "cherry"];
console.log(fruits.length);  // 3

7. Особенности массивов

  • Массивы в JavaScript динамически изменяют размер: можно добавлять и удалять элементы.
  • Они могут содержать элементы разных типов.
  • Хотя массивы являются объектами, JavaScript оптимизирует их для индексации по числам, что делает их похожими на списки.

Массивы — это мощный инструмент для работы с данными в JavaScript, позволяющий хранить и манипулировать коллекциями значений удобно и эффективно.